package com.zkthink.ceres.member.vo;

import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.hutool.core.date.DatePattern;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

/**
 * <p>
 * 实体类 商城会员信息
 * </p>
 *
 * @author kellen
 * @since 2020-05-02
 */
@Data
@NoArgsConstructor
@ToString(callSuper = true)
@Accessors(chain = true)
@ApiModel(value = "MemberVO", description = "商城会员信息")
@AllArgsConstructor
public class MemberVO implements Serializable {

  private static final long serialVersionUID = 1L;

  /**
   * vip编号
   */
  @ApiModelProperty(value = "vip编号")
  @Length(max = 10, message = "vip编号长度不能超过10")
  @Excel(name = "vip编号")
  private String vipNo;

  /**
   * 会员微信OPENID
   */
  @ApiModelProperty(value = "会员微信OPENID")
  @Length(max = 100, message = "会员微信OPENID长度不能超过100")
  @Excel(name = "会员微信OPENID")
  private String openid;


  /**
   * 会员昵称
   */
  @ApiModelProperty(value = "会员昵称")
  @Length(max = 20, message = "会员昵称长度不能超过20")
  @Excel(name = "会员昵称")
  private String nickname;

  /**
   * 会员头像
   */
  @ApiModelProperty(value = "会员头像")
  @Length(max = 500, message = "会员头像长度不能超过500")
  @Excel(name = "会员头像")
  private String headimg;

  /**
   * 用户类型 1-普通用户 2-商家用户
   */
  @ApiModelProperty(value = "用户类型 1-普通用户 2-商家用户")
  @Excel(name = "用户类型 1-普通用户 2-商家用户", replace = {"是_true", "否_false", "_null"})
  private Boolean userType;

  /**
   * 性别
   */
  @ApiModelProperty(value = "性别")
  @Length(max = 2, message = "性别长度不能超过2")
  @Excel(name = "性别")
  private String sex;

  /**
   * 会员级别
   */
  @ApiModelProperty(value = "会员级别")
  @Excel(name = "会员级别")
  private Integer level;

  /**
   * 默认收货地址
   */
  @ApiModelProperty(value = "默认收货地址")
  @Excel(name = "默认收货地址")
  private Long addressId;

  /**
   * 会员个性签名
   */
  @ApiModelProperty(value = "会员个性签名")
  @Length(max = 500, message = "会员个性签名长度不能超过500")
  @Excel(name = "会员个性签名")
  private String remark;

  /**
   * 会员手机号
   */
  @ApiModelProperty(value = "会员手机号")
  @Length(max = 16, message = "会员手机号长度不能超过16")
  @Excel(name = "会员手机号")
  private String phone;


  @ApiModelProperty(value = "注册时间")
  @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN)
  private LocalDateTime createTime;

  @ApiModelProperty(value = "生日")
  private String birth;


}
